importClass(java.io.BufferedReader);
importClass(java.io.IOException);
importClass(java.io.InputStream);
importClass(java.io.InputStreamReader);
importClass(java.io.OutputStream);
importClass(java.net.HttpURLConnection);
importClass(java.net.MalformedURLException);
importClass(java.net.URL);

let httpurl;
main();
function main(args) {
  log("hello world"); // 你好world
  let httpurl = "http://www.baidu.com";
  let r = doGet(httpurl);
  log(r); //
}
function doGet(httpurl) {
  let connection = null;
  let is = null;
  let br = null;
  let result = null; // 返回结果字符串
  try {
    // 创建远程url连接对象
    let url = new URL(httpurl);
    // 通过远程url连接对象打开一个连接，强转成httpURLConnection类
    connection = url.openConnection();
    // 设置连接方式：get
    connection.setRequestMethod("GET");
    // 设置连接主机服务器的超时时间：15000毫秒
    connection.setConnectTimeout(15000);
    // 设置读取远程返回的数据时间：60000毫秒
    connection.setReadTimeout(60000);
    // 发送请求
    connection.connect();
    // 通过connection连接，获取输入流
    if (connection.getResponseCode() == 200) {
      is = connection.getInputStream();
      // 封装输入流is，并指定字符集
      br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
      // 存放数据
      let sbf = new java.lang.StringBuffer();
      let temp = null;
      while ((temp = br.readLine()) != null) {
        sbf.append(temp);
        sbf.append("\r\n");
      }
      result = sbf.toString();
    }
  } catch (e) {
    log(e && e.stack);
  } finally {
    // 关闭资源
    if (null != br) {
      try {
        br.close();
      } catch (e) {
        log(e && e.stack);
      }
    }

    if (null != is) {
      try {
        is.close();
      } catch (e) {
        log(e && e.stack);
      }
    }

    connection.disconnect(); // 关闭远程连接
  }

  return result;
}

function doPost(httpUrl, param) {
  let connection = null;
  let is = null;
  let os = null;
  let br = null;
  let result = null;
  try {
    let url = new URL(httpUrl);
    // 通过远程url连接对象打开连接
    connection = url.openConnection();
    // 设置连接请求方式
    connection.setRequestMethod("POST");
    // 设置连接主机服务器超时时间：15000毫秒
    connection.setConnectTimeout(15000);
    // 设置读取主机服务器返回数据超时时间：60000毫秒
    connection.setReadTimeout(60000);

    // 默认值为：false，当向远程服务器传送数据/写数据时，需要设置为true
    connection.setDoOutput(true);
    // 默认值为：true，当前向远程服务读取数据时，设置为true，该参数可有可无
    connection.setDoInput(true);
    // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    // 设置鉴权信息：Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
    connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
    // 通过连接对象获取一个输出流
    os = connection.getOutputStream();
    // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
    os.write(param.getBytes());
    // 通过连接对象获取一个输入流，向远程读取
    if (connection.getResponseCode() == 200) {
      is = connection.getInputStream();
      // 对输入流对象进行包装:charset根据工作项目组的要求来设置
      br = new BufferedReader(new InputStreamReader(is, "UTF-8"));

      let sbf = new java.lang.StringBuffer();
      let temp = null;
      // 循环遍历一行一行读取数据
      while ((temp = br.readLine()) != null) {
        sbf.append(temp);
        sbf.append("\r\n");
      }
      result = sbf.toString();
    }
  } catch (e) {
    log(e && e.stack);
  } finally {
    // 关闭资源
    if (null != br) {
      try {
        br.close();
      } catch (e) {
        log(e && e.stack);
      }
    }
    if (null != os) {
      try {
        os.close();
      } catch (e) {
        log(e && e.stack);
      }
    }
    if (null != is) {
      try {
        is.close();
      } catch (e) {
        log(e && e.stack);
      }
    }
    // 断开与远程地址url的连接
    connection.disconnect();
  }
  return result;
}
